package com.example.lemis.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.lemis.model.domain.Doorplate;
import com.example.lemis.model.domain.DoorplateApply;
import com.example.lemis.model.dto.DoorplateInsertDTO;
import com.example.lemis.model.dto.DoorplateQuery;
import com.example.lemis.model.dto.DoorplateSummaryQuery;
import com.example.lemis.model.vo.DoorplateSummaryVO;
import com.example.lemis.model.dto.DoorplateReissueDTO;
import com.example.lemis.model.vo.DoorplateVO;
import com.example.lemis.model.vo.userDoorplateVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 管理门牌数据 Mapper 接口
 * </p>
 *
 * @author lxp
 * @since 2025-06-24
 */
public interface DoorplateMapper extends BaseMapper<Doorplate> {

    Page<userDoorplateVO> doorplate_search_admin(@Param("pages") Page<userDoorplateVO> page, @Param("name") String name);

    void update_doorplate_status(@Param("dp") Doorplate doorplate);

    int insertDoorplate(@Param("dto") DoorplateInsertDTO doorplate);

    DoorplateVO selectByIdWithClazzStreet(@Param("id") Long doorplateId);

    Page<DoorplateVO> queryByUserWithClazzStreet(@Param("dto") DoorplateQuery query,
                                                 @Param("pages") Page<DoorplateVO> page);

    List<DoorplateSummaryVO> summary(@Param("dto") DoorplateSummaryQuery query,
                                     @Param("groupByCols") String groupByFields);
}
